/**
 * Author(s): xuming.Wong <xuming.Wong@gmail.com>
 */
#ifndef __PQ_Exception_H__
#define __PQ_Exception_H__

#include "PQPrerequisites.h"

#include <tchar.h>   
#include <cstdio>   
#include <cstdarg> 

//throw string exception
void throwStringException(char*, ...);

#define PQThrow throwStringException

#define PQThrowNotImpl() throwStringException("Not implemented!")

#define PQThrowShouldNotReach() throwStringException("Should not reach here!")

#define PQAssert( bCondition) \
do { \
	if( (bCondition) == 0 ) \
	{ \
		throwStringException(_T(__FILE__), __LINE__, _T(#bCondition)); \
	} \
} while(0);

#endif
